This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Computers, servers, and various other computing devices are typically configured locally by interacting with the computing device, inputting configuration parameters, and utilizing local hardware, software, and computing resources. The computing device may include a variety of circuitry, memory devices, processors, power sources, and other electronics for a particular application. In some computing devices, input/output devices are provided to facilitate user interaction. However, many computing devices are not configured for direct or local user interaction. For example, various network appliances, servers, and computing devices are “headless” devices, which means that the device lacks a display and input devices.
Although the computing device may not have input/output devices for user interaction, the computing device may still require initial setup and subsequent configuration when the computing device is coupled to a network, utilized for a particular application, or otherwise allocated such that software, hardware and operational parameters require setup or re-configuration. In particular, network devices often lack a display, a keyboard, and a pointing device. Servers, routers, and other computing devices are typically disposed in a network to manage and direct network traffic, to facilitate data transfer, and to enhance the operability of the network. For example, a network may include a cache server, an application server, a print server, a file server, a proxy server, a secure/firewall server, a staging server, a dedicated server, a web server, a domain name system (“DNS”) server, a dynamic host configuration protocol (“DHCP”) server, a network attached storage (“NAS”) server, a virtual private network (“VPN”) server, and various other servers, appliances, and computing devices. Each of these computing devices requires configuration to operate on the network, which may include a local area network (“LAN”) or a plurality of LANs forming a wide area network (“WAN”) such as the Internet. However, the lack of standard input/output devices complicates the configuration process.
Various manual procedures may be employed to configure these computing devices during initial setup and subsequent reconfiguration. For example, a device having a keypad and liquid crystal display (“LCD”) may be coupled to the computing device temporarily to facilitate a manual setup of software, hardware, and operational parameters (e.g., network parameters). A console having a keyboard and a monitor also may be used to interact temporarily with the computing device. Alternatively, a self-executing program may be disposed on a storage media (e.g., a floppy disk or a compact disk) and inserted manually into a disk drive of the computing device to configure at least a portion of the computing device. For example, the self-executing program may install desired network parameters (e.g., an IP address, a subnet address, and a gateway address) for the computing device to facilitate network operability of the computing device. However, the network parameters may be unknown and the computing device may not have a disk drive. Accordingly, the configuration process requires a cable connection to an interactive computing device having input/output devices to facilitate setup. Normally, such a cable connection facilitates interaction with the computing device via a line-by-line programming language, such as LINUX.
The cable connection is typically a temporary cable connection, because the identity of the computing device would be unknown on a network. In a network, a dynamic host configuration protocol (“DHCP”) server may be provided to assign a dynamic IP address to a device requesting an IP address, yet the identity of the device obtaining the dynamic IP address is unknown. With dynamic addressing, a device can have a different IP address every time it connects to the network. In some systems, the device's IP address can even change while it is still connected. DHCP also supports a mix of static and dynamic IP addresses. Although the IP addresses assigned by the DHCP server may be determinable, the actual devices corresponding to those IP addresses are not determinable by conventional techniques.
A typical solution is to enter a static IP address manually, rather than utilizing a dynamically assigned IP address. By manually entering the static IP address, the computing device can be identified and configured via the network. However, a static IP address may be undesirable, and manual configuration in this manner requires time and a level of skill beyond a typical consumer. The consumer would need to configure both the network server and the computing device according to the static IP address.
Another solution is to employ a reverse address resolution protocol (“RARP”) communication to determine the IP address of the computing device. Each of the computing devices on a network have a unique hardware address, or medium access control (“MAC”) address, which is assigned by the manufacturer of the network interface card (“NIC”). The MAC address typically includes a hardware identification number and a manufacturer/source identification number. The RARP process reads the local MAC address of the NIC and transmits a RARP communication onto the network requesting a RARP reply with the computing device's IP address. A RARP server then returns a RARP reply with the desired IP address. While the RARP process facilitates determination of the computing device's IP address, the RARP process is system dependent and it utilizes a command line interface. Accordingly, RARP is not uniformly applicable, and it may require a significant about time and a level of skill beyond the typical consumer.
A considerable amount of user input and manual interaction is also required to configure hardware, software, and other operational parameters for conventional computer systems, such as desktop and laptop computers. A conventional computer system may include a motherboard, a processor, RAM, a hard drive, a disk drive, a modem, a network card, a video card, an audio card, a power supply, and various other electronics and computing resources. Conventional computer systems also may include various peripheral devices, such as a display, a keyboard, a mouse, and various other input/output devices for interacting with the computing resources of the computer system. The operating system, device drivers, and specific software applications are typically loaded directly onto the computer system via a floppy disk, a compact disk, or other storage media. The user configures the computer system by selecting desired features, entering appropriate parameters, and manually progressing through the software as user input is required.
In all categories of computing devices, service and maintenance are generally provided via e-mail, telephone, brochures and other informational books, and electronic pages viewable on the Internet. The user must seek information or assistance and then manually configure the computing device based on the information obtained for the particular issue or problem. Unfortunately, the typical consumer is relatively unskilled and unknowledgeable in areas of hardware, software, networks, and other operational configurations of computing devices.